<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Excel数据导入功能使用指南</title>
    <style>
        body {
            font-family: 'Microsoft YaHei', Arial, sans-serif;
            max-width: 900px;
            margin: 0 auto;
            padding: 20px;
            line-height: 1.6;
            color: #333;
        }
        .header {
            background-color: #3498db;
            color: white;
            padding: 20px;
            text-align: center;
            border-radius: 5px;
            margin-bottom: 30px;
        }
        h1, h2, h3 {
            color: #2c3e50;
        }
        h2 {
            border-bottom: 1px solid #eee;
            padding-bottom: 10px;
            margin-top: 30px;
        }
        pre {
            background-color: #f8f8f8;
            padding: 15px;
            border-radius: 5px;
            overflow-x: auto;
            border: 1px solid #ddd;
        }
        code {
            font-family: Consolas, monospace;
            background-color: #f0f0f0;
            padding: 2px 4px;
            border-radius: 3px;
        }
        .note {
            background-color: #e7f4ff;
            border-left: 4px solid #3498db;
            padding: 15px;
            margin: 20px 0;
            border-radius: 0 5px 5px 0;
        }
        .warning {
            background-color: #fff8e7;
            border-left: 4px solid #f39c12;
            padding: 15px;
            margin: 20px 0;
            border-radius: 0 5px 5px 0;
        }
        table {
            border-collapse: collapse;
            width: 100%;
            margin: 20px 0;
        }
        th, td {
            border: 1px solid #ddd;
            padding: 8px 12px;
            text-align: left;
        }
        th {
            background-color: #f2f2f2;
        }
        .btn {
            display: inline-block;
            background-color: #3498db;
            color: white;
            text-decoration: none;
            padding: 10px 15px;
            border-radius: 4px;
            margin-top: 20px;
        }
        .btn:hover {
            background-color: #2980b9;
        }
        .step {
            margin-bottom: 25px;
            padding-left: 20px;
            position: relative;
        }
        .step-number {
            position: absolute;
            left: 0;
            top: 0;
            background-color: #3498db;
            color: white;
            width: 24px;
            height: 24px;
            border-radius: 50%;
            text-align: center;
            line-height: 24px;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <div class="header">
        <h1>Excel 数据导入功能使用指南</h1>
        <p>本指南将帮助你使用并测试系统的Excel数据导入功能</p>
    </div>
    
    <h2>简介</h2>
    <p>系统提供了从Excel文件导入数据的功能，支持单Sheet导入和多Sheet导入两种模式，适用于不同的业务场景。所有导入功能都通过REST API接口提供，本测试页面是这些API的直观界面封装。</p>
    
    <div class="note">
        <strong>提示：</strong> 系统使用EasyExcel框架实现Excel导入，支持大文件处理、数据校验和自定义转换。
    </div>
    
    <h2>支持的业务类型</h2>
    <p>当前系统支持以下业务类型的数据导入：</p>
    
    <table>
        <thead>
            <tr>
                <th>业务类型代码</th>
                <th>业务类型名称</th>
                <th>说明</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>INVOICE</td>
                <td>发票数据</td>
                <td>用于导入发票明细信息</td>
            </tr>
            <tr>
                <td>CUST_CREDIT</td>
                <td>客户授信</td>
                <td>用于导入客户授信信息</td>
            </tr>
            <tr>
                <td>CUST_PAYMENT_PLAN</td>
                <td>客户付款计划</td>
                <td>用于导入客户付款计划信息</td>
            </tr>
            <tr>
                <td>CUST_PAYMENT_RESULT</td>
                <td>客户付款结果</td>
                <td>用于导入客户付款结果信息</td>
            </tr>
        </tbody>
    </table>
    
    <h2>导入模板要求</h2>
    
    <div class="step">
        <div class="step-number">1</div>
        <h3>Excel格式要求</h3>
        <p>系统支持导入.xlsx(Excel 2007+)和.xls(Excel 97-2003)两种格式的文件。推荐使用.xlsx格式，它具有更好的兼容性和性能。</p>
    </div>
    
    <div class="step">
        <div class="step-number">2</div>
        <h3>表头要求</h3>
        <p>Excel文件的第一行必须是表头，且表头名称必须与系统预定义的表头一致。表头名称区分大小写，请严格按照模板格式填写。</p>
        
        <p>以下是各业务类型的表头要求：</p>
        
        <h4>发票数据(INVOICE)表头</h4>
        <pre>发票ID	发票号码	客户名称	开票日期	不含税金额	税率	税额	价税合计	备注</pre>
        
        <h4>客户授信(CUST_CREDIT)表头</h4>
        <pre>客户ID	客户名称	授信额度	授信开始日期	授信结束日期	授信状态	备注</pre>
        
        <h4>客户付款计划(CUST_PAYMENT_PLAN)表头</h4>
        <pre>计划ID	客户ID	客户名称	计划付款日期	计划付款金额	付款类型	备注</pre>
        
        <h4>客户付款结果(CUST_PAYMENT_RESULT)表头</h4>
        <pre>结果ID	计划ID	客户ID	客户名称	实际付款日期	实际付款金额	付款状态	备注</pre>
    </div>
    
    <div class="step">
        <div class="step-number">3</div>
        <h3>数据格式要求</h3>
        <ul>
            <li>日期格式：支持多种常见日期格式，推荐使用<code>yyyy-MM-dd</code>格式</li>
            <li>数字格式：金额等数值可以带小数点，系统会自动处理</li>
            <li>文本格式：普通文本无特殊要求</li>
        </ul>
    </div>
    
    <div class="warning">
        <strong>注意：</strong> 导入的数据必须符合系统的业务规则，例如必填字段不能为空、金额不能为负数等。系统会在导入过程中进行校验，并在发现错误时中止导入过程。
    </div>
    
    <h2>单Sheet导入功能</h2>
    
    <div class="step">
        <div class="step-number">1</div>
        <h3>单Sheet导入适用场景</h3>
        <p>单Sheet导入适用于只需要导入一种业务类型数据的场景。例如，只导入发票数据或只导入客户授信数据。</p>
    </div>
    
    <div class="step">
        <div class="step-number">2</div>
        <h3>操作步骤</h3>
        <ol>
            <li>选择要导入的业务类型</li>
            <li>上传包含数据的Excel文件（只处理第一个Sheet）</li>
            <li>点击"开始导入"按钮</li>
            <li>等待系统处理并显示结果</li>
        </ol>
    </div>
    
    <h2>多Sheet导入功能</h2>
    
    <div class="step">
        <div class="step-number">1</div>
        <h3>多Sheet导入适用场景</h3>
        <p>多Sheet导入适用于需要同时导入多种业务类型数据的场景。例如，一个Excel文件中的第一个Sheet是发票数据，第二个Sheet是客户授信数据。</p>
    </div>
    
    <div class="step">
        <div class="step-number">2</div>
        <h3>Excel文件要求</h3>
        <p>Excel文件中的每个Sheet对应一种业务类型，且Sheet的顺序必须与选择的业务类型顺序一致。每个Sheet的表头要求同单Sheet导入。</p>
    </div>
    
    <div class="step">
        <div class="step-number">3</div>
        <h3>操作步骤</h3>
        <ol>
            <li>按照Sheet的顺序选择对应的业务类型（可多选，按住Ctrl键）</li>
            <li>上传包含多个Sheet的Excel文件</li>
            <li>点击"开始导入"按钮</li>
            <li>等待系统处理并显示结果</li>
        </ol>
    </div>
    
    <div class="warning">
        <strong>重要提示：</strong> 在多Sheet导入中，业务类型的选择顺序必须与Excel文件中Sheet的顺序一致。例如，如果选择了"发票数据,客户授信"，则Excel文件的第一个Sheet必须是发票数据，第二个Sheet必须是客户授信数据。
    </div>
    
    <h2>REST API接口说明</h2>
    
    <h3>1. 单Sheet导入</h3>
    <pre>POST /common/importExcel
Content-Type: multipart/form-data

Parameters:
- businessType: 业务类型代码
- file: Excel文件</pre>
    
    <h3>2. 多Sheet导入</h3>
    <pre>POST /common/importMultiSheetExcel
Content-Type: multipart/form-data

Parameters:
- businessTypes: 业务类型代码列表，以逗号分隔
- file: Excel文件</pre>
    
    <div class="note">
        <strong>说明：</strong> businessTypes参数支持以下格式:
        <ol>
            <li>带引号的逗号分隔格式: "CUST_CREDIT","INVOICE"</li>
            <li>不带引号的逗号分隔格式: CUST_CREDIT,INVOICE</li>
            <li>JSON数组格式: ["CUST_CREDIT","INVOICE"]</li>
            <li>JSON对象格式: {"CUST_CREDIT","INVOICE"}</li>
        </ol>
    </div>
    
    <h2>故障排除</h2>
    
    <h3>常见错误及解决方案</h3>
    
    <table>
        <thead>
            <tr>
                <th>错误提示</th>
                <th>可能原因</th>
                <th>解决方案</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>导入失败: 业务类型不能为空</td>
                <td>未选择业务类型或业务类型参数为空</td>
                <td>确保已选择至少一个业务类型</td>
            </tr>
            <tr>
                <td>导入失败: 文件不能为空</td>
                <td>未选择Excel文件或文件上传失败</td>
                <td>检查是否已选择文件，文件是否有效</td>
            </tr>
            <tr>
                <td>导入失败: 表头不匹配</td>
                <td>Excel文件的表头与系统预期不一致</td>
                <td>检查表头是否符合要求，区分大小写</td>
            </tr>
            <tr>
                <td>导入失败: 数据格式错误</td>
                <td>Excel中的数据格式不符合要求</td>
                <td>检查日期、数字等格式是否正确</td>
            </tr>
            <tr>
                <td>导入失败: 业务规则校验失败</td>
                <td>数据不符合业务规则</td>
                <td>根据具体错误提示修正数据</td>
            </tr>
        </tbody>
    </table>
    
    <div style="text-align: center; margin-top: 30px;">
        <a href="excel-import.html" class="btn">返回测试页面</a>
        <a href="index.html" class="btn" style="margin-left: 10px;">返回主页</a>
    </div>
</body>
</html> 